--- ./gcc/config/i386/i386.c.orig	2015-11-18 09:45:26.000000000 -0600
+++ ./gcc/config/i386/i386.c	2016-02-05 13:50:07.202981920 -0600
@@ -9677,6 +9677,10 @@
   if (TARGET_64BIT_MS_ABI && get_frame_size () > SEH_MAX_FRAME_SIZE)
     return true;
 
+  /* SSE saves require frame-pointer when stack is misaligned.  */
+  if (TARGET_64BIT_MS_ABI && ix86_incoming_stack_boundary < 128)
+    return true;
+
   /* In ix86_option_override_internal, TARGET_OMIT_LEAF_FRAME_POINTER
      turns off the frame pointer by default.  Turn it back on now if
      we've not got a leaf function.  */
